package br.gov.mi.corporativo.dominio.boundary.rhmi.funcionarioafastamento;

import java.util.Date;
import java.util.List;

import javax.inject.Inject;
import javax.jws.WebService;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import br.gov.mi.corporativo.dominio.entidade.rhmi.FuncionarioAfastamento;
import br.gov.mi.corporativo.dominio.repositorio.rhmi.FuncionarioAfastamentoRepositorio;
import br.gov.mi.infraestrutura.crud.CrudServicoImpl;

@Component
@Transactional(readOnly=true)
@WebService(endpointInterface = "br.gov.mi.corporativo.dominio.boundary.rhmi.funcionarioafastamento.FuncionarioAfastamentoEndPoint")
public class FuncionarioAfastamentoServico extends CrudServicoImpl<FuncionarioAfastamento, Long, FuncionarioAfastamentoRepositorio>  implements FuncionarioAfastamentoEndPoint{

	@Inject
	public void setRepository(FuncionarioAfastamentoRepositorio repositorio) {
		super.setRepositorio(repositorio);
	}
	
	@Override
	public FuncionarioAfastamento recuperarPorIdFuncionarioAfastamento(Long idFuncionarioAfastamento) {
		return repositorio.findByIdFuncionarioAfastamento(idFuncionarioAfastamento);
	}

	@Override
	public List<FuncionarioAfastamento> recuperarPorFuncionario(Long funcionario) {
		return repositorio.findByFuncionario(funcionario);
	}

	@Override
	public List<FuncionarioAfastamento> recuperarPorTipoAfastamento(Long tipoAfastamento) {
		return repositorio.findByTipoAfastamento(tipoAfastamento);
	}

	@Override
	public List<FuncionarioAfastamento> recuperarPorFuncionarioCargo(Long funcionarioCargo) {
		return repositorio.findByFuncionarioCargo(funcionarioCargo);
	}

	@Override
	public List<FuncionarioAfastamento> recuperarPorDtInicio(Date dtInicio) {
		return repositorio.findByDtInicio(dtInicio);
	}

	@Override
	public List<FuncionarioAfastamento> recuperarPorDtTermino(Date dtTermino) {
		return repositorio.findByDtTermino(dtTermino);
	}

	@Override
	public List<FuncionarioAfastamento> recuperarPorStVencimento(String stVencimento) {
		return repositorio.findByStVencimento(stVencimento);
	}

	@Override
	public List<FuncionarioAfastamento> recuperarPorStRegistro(String stRegistro) {
		return repositorio.findByStRegistro(stRegistro);
	}
	
  
	
}
